
const {ccclass, property} = cc._decorator;

var BubbleType = {
    Red: 0,
    Blue: 1,
    Yellow: 2,
    Blocker:3
};

@ccclass
export default class Bubble extends cc.Component {
    @property(cc.Sprite)
    bubbleSprite:cc.Sprite = null;
    @property([cc.SpriteFrame])
    texBubbles: cc.SpriteFrame[] = [];

    _type:number = 0;
    @property
    get type() {
        return this._type;
    }
    set type(value) {
        this._type = value;
        this.bubbleSprite.spriteFrame = this.texBubbles[value];
    }

    // 在map中的位置
    row:number = 0;
    col:number = 0;

    // 寻找连接链使用
    isBfsVisit:boolean = false;
    /**
     * 一些动画需要这个属性，
     * 比如：做消除时，消除动画的延迟和bfsLevel成正比
     */
    bfsLevel:number = 0;
    // 是否是提供根结点，根结点不会掉落，和根结点连通的结点也不会掉落
    isBaseNode:boolean = false;
    // 是否能掉落。和根节点联通的不能掉落
    canFall: boolean = true;

    moveStep:number = 87.2; // 每个逻辑帧的移动步长

    // LIFE-CYCLE CALLBACKS:

    // onLoad () {}

    start () {
        this.bubbleSprite.spriteFrame = this.texBubbles[this.type];
    }

    // update (dt) {}
}
